As the bit rates offered for broadband Internet access services (e.g. broadband cable, digital subscriber line (DSL), fiber to the home (FTTH), etc.) reach greater capacities, consumers (or users) of those services may expect an improved user experience commensurate with higher access bandwidths. Moreover, consumers that pay more for higher bandwidth service tiers provided by an Internet service provider (ISP) may expect a better user experience for their investment. Thus, some ISPs measure what their users experience (e.g., a consumer Internet experience) in order to determine the quality of the services being provided.
Many ISPs utilize performance monitoring tools to measure the services that they provide. For example, since a goal of ISPs is to transport Internet protocol (IP) packets from one point to another point, many performance monitoring tools operate at the IP packet layer (or network layer). Active monitoring tools (e.g., pinging) and passive monitoring tools (e.g., packet level statistics, port utilization, packet discards, etc.) are supported in many IP routers. Application layer performance monitoring tools address metrics deemed most relevant to what a user experiences when executing a particular application over a network, such as the Internet. Monitoring performance associated with web page response (e.g., during access of web pages) and the network path traversed to access the web page may provide information to ISPs supporting the web pages.
Accessing a web page is an example of using a service delivered via the Internet. When a user accesses a web page (or web site) through a local browser application (e.g., Internet Explorer, Netscape, FireFox, etc.), the application downloads content corresponding to the web page and renders (displays) the web page. A web page generally includes one or more constituent files (e.g., inline objects) that represent individual components (e.g., images, frames, text, etc.) making up the complete web page as displayed by the browser application. Each inline object, including the web page itself, is identified by a uniform resource locator (URL) that uniquely identifies the location of the web page on the Internet. Web pages are generally coded in hypertext markup language (HTML). In order to display a web page, the browser application first requests the web page content, and then parses the HTML associated with the web page to gather references to remaining URLs and instructions for displaying the web page. The browser application executes requests required to obtain remaining inline objects necessary to display the web page.
A measure of how long it takes for a web page to be displayed may be referred to as the response time of the web page or a web page download response time. The web page download response time may be a function of cumulative response times (e.g., inline object response times) associated with inline objects that constitute the web page. A web page may be accessed via an Internet protocol, such as hypertext transfer protocol (HTTP). The most common version of HTTP in use today is HTTP Version 1.1 (or HTTP 1.1). HTTP 1.1 operates over a transport layer provided by a transport control protocol (TCP). HTTP 1.1 distinguishes itself from HTTP 1.0, an earlier version of HTTP, primarily in that it can use the same TCP connection to query one or more inline objects. For HTTP 1.0, a separate TCP connection was established for each individual inline object query.
TCP is a connection oriented protocol that provides a reliable transport layer (over the connectionless Internet protocol) for applications that communicate over IP. Consequently, applications like HTTP that operate over TCP are subject to network layer effects that impact TCP. These include the round trip times of paths from client to/from server (or servers). There is also the potential for packet drops and/or re-orderings (due to transient periods of congestion), packet errors, and other artifacts that may occur at the IP layer. Moreover, a domain name service (DNS) may be invoked by the client (at times prior to and during a web page transaction) to resolve the IP addresses of unresolved host names.